package cn.stylefeng.guns.sys.modular.system.mapper;

import cn.stylefeng.guns.base.pojo.node.LayuiTreeNode;
import cn.stylefeng.guns.base.pojo.node.TreeviewNode;
import cn.stylefeng.guns.base.pojo.node.ZTreeNode;
import cn.stylefeng.guns.sys.modular.system.entity.Area;
import cn.stylefeng.guns.sys.modular.system.entity.AreaNode;
import cn.stylefeng.guns.sys.modular.system.model.params.AreaParam;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 部门表 Mapper 接口
 * </p>
 *
 * @author stylefeng
 * @since 2018-12-07
 */
public interface AreaMapper extends BaseMapper<Area> {

    /**
     * 获取ztree的节点列表
     */
    List<ZTreeNode> tree();

    /**
     * 获取layui树形节点
     */
    List<LayuiTreeNode> layuiTree();

    /**
     * 获取部門名稱
     */
    String name(Long id);

    /**
     * 获取所有部门列表
     */
    Page<Map<String, Object>> list(@Param("page") Page page, @Param("param") Area param);

    /**
     * 获取所有部门树列表
     */
    List<TreeviewNode> treeviewNodes();

    /**
     * where pids like ''
     */
    List<Area> likePids(@Param("id") Long id);


    List<Area> getAreaByType(AreaParam areaParam);

    List<Area> getAreaByPid(AreaParam areaParam);

    List<AreaNode> getAreas(AreaParam areaParam);


    List<Map> yyjlList();

    List<Map> ddList(@Param("yyjl") String yyjl);
}
